package org.jsola.hr.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.vo.BaseVO;

import java.math.BigDecimal;
import java.util.Date;

import static org.jsola.core.example.BaseExample.E_GMT_CREATE;
import static org.jsola.core.example.BaseExample.E_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.E_ID;
import static org.jsola.core.example.BaseExample.N_GMT_CREATE;
import static org.jsola.core.example.BaseExample.N_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.N_ID;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_ATTEND_PLAN_ID;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_ATTEND_STATUS;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_COMPANY_ID;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_COMPANY_NAME;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_DAILY;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_DAILY_SUMMARY_ID;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_DEPT_ID;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_DEPT_NAME;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_EARLIEST_TIME;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_EMP_INFO_ID;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_EMP_INFO_NAME;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_GO_OUT_HOURS;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_GO_OUT_LOCATION;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_HIS_ATTEND_STATUS;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_IS_GO_OUT;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_IS_USED;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_LATEST_TIME;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_MINUTES;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_MONTHLY;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_OVERTIME_HOURS;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_OVERTIME_STATUS;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_PUNCH_COUNTS;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_SIGN_IN_LOCATION;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_SIGN_OUT_LOCATION;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_WORK_TIME_MINUTE;
import static org.jsola.hr.example.AttendPunchDailyReportExample.E_YEARLY;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_ATTEND_PLAN_ID;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_ATTEND_STATUS;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_COMPANY_ID;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_COMPANY_NAME;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_DAILY;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_DAILY_SUMMARY_ID;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_DEPT_ID;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_DEPT_NAME;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_EARLIEST_TIME;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_EMP_INFO_ID;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_EMP_INFO_NAME;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_GO_OUT_HOURS;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_GO_OUT_LOCATION;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_HIS_ATTEND_STATUS;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_IS_GO_OUT;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_IS_USED;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_LATEST_TIME;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_MINUTES;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_MONTHLY;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_OVERTIME_HOURS;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_OVERTIME_STATUS;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_PUNCH_COUNTS;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_SIGN_IN_LOCATION;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_SIGN_OUT_LOCATION;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_WORK_TIME_MINUTE;
import static org.jsola.hr.example.AttendPunchDailyReportExample.N_YEARLY;

/**
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "【考勤打卡日报表】列表展示对象")
@Data
public class AttendPunchDailyReportListVO extends BaseVO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_ID, example = E_ID)
    private String id;

    @ApiModelProperty(notes = "部门名称", example = "")
    private String deptName;

    @ApiModelProperty(notes = "考勤规则ID", example = "")
    private String attendPlanId;

    @ApiModelProperty(notes = "考勤规则名称", example = "")
    private String attendPlanName;

    @ApiModelProperty(notes = "员工姓名", example = "")
    private String empInfoName;

    @ApiModelProperty(notes = "最早", example = "")
    private String earliestTime;

    @ApiModelProperty(notes = "最晚", example = "")
    private String latestTime;

    @ApiModelProperty(notes = "次数", example = "")
    private Integer punchCounts;

    @ApiModelProperty(notes = "工作时长", example = "")
    private Integer workTimeMinute;

    @ApiModelProperty(notes = "工作时长-展示", example = "")
    private String workTimeMinuteStr;

    @ApiModelProperty(notes = "原始状态;1-正常,2-异常", example = "")
    private Integer hisAttendStatus;

    @ApiModelProperty(notes = "校准状态", example = "")
    private Integer attendStatus;

    @ApiModelProperty(notes = "校准状态-展示", example = "")
    private String attendStatusStr;

    @ApiModelProperty(notes = "加班状态;1-加班,0-未加班", example = "")
    private Integer overtimeStatus;

    @ApiModelProperty(notes = "加班时长", example = "")
    private BigDecimal overtimeHours;

    @ApiModelProperty(notes = "加班时长-展示", example = "")
    private String overtimeHoursStr;

    @ApiModelProperty(notes = N_MINUTES, example = E_MINUTES)
    private Integer minutes;

}

